﻿using System;

namespace MyLib {
	/// <summary>
	/// 
	/// </summary>
	/// <typeparam name="T"></typeparam>
	public class MyEventArgs<T> : EventArgs {
		/// <summary>
		/// 
		/// </summary>
		public T Value { get; private set; }

		/// <summary>
		/// 
		/// </summary>
		/// <param name="v"></param>
		public MyEventArgs(T v) {
			Value = v;
		}
	} // end of MyEventArgs.

	/// <summary>
	/// 
	/// </summary>
	/// <typeparam name="T1"></typeparam>
	/// <typeparam name="T2"></typeparam>
	public class MyEventArgs<T1, T2> : EventArgs {
		/// <summary>
		/// 
		/// </summary>
		public T1 Value1 { get; private set; }

		/// <summary>
		/// 
		/// </summary>
		public T2 Value2 { get; private set; }

		/// <summary>
		/// 
		/// </summary>
		/// <param name="v1"></param>
		/// <param name="v2"></param>
		public MyEventArgs(T1 v1, T2 v2) {
			Value1 = v1;
			Value2 = v2;
		}
	} // end of MyEventArgs.

	/// <summary>
	/// 
	/// </summary>
	/// <typeparam name="T1"></typeparam>
	/// <typeparam name="T2"></typeparam>
	/// <typeparam name="T3"></typeparam>
	public class MyEventArgs<T1, T2, T3> : EventArgs {
		/// <summary>
		/// 
		/// </summary>
		public T1 Value1 { get; private set; }

		/// <summary>
		/// 
		/// </summary>
		public T2 Value2 { get; private set; }

		/// <summary>
		/// 
		/// </summary>
		public T3 Value3 { get; private set; }

		/// <summary>
		/// 
		/// </summary>
		/// <param name="v1"></param>
		/// <param name="v2"></param>
		/// <param name="v3"></param>
		public MyEventArgs(T1 v1, T2 v2, T3 v3) {
			Value1 = v1;
			Value2 = v2;
			Value3 = v3;
		}
	} // end of MyEventArgs.
}
